package com.ruoyi.smile.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 动态内容对象 mc_dynamic_content
 *
 * @author xin
 * @date 2025-03-08
 */
public class McDynamicContent extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 动态内容唯一标识 */
    private Long id;

    /** 标题 */
    @Excel(name = "标题")
    private String title;

    /** 内容或描述 */
    @Excel(name = "内容或描述")
    private String content;

    /** 封面图片的 URL */
    @Excel(name = "封面图片的 URL")
    private String icon;

    /** 资源地址（例如视频链接、文章链接等） */
    @Excel(name = "资源地址", readConverterExp = "例=如视频链接、文章链接等")
    private String uri;

    /** 动态内容的地理位置（省份） */
    @Excel(name = "动态内容的地理位置", readConverterExp = "省=份")
    private String province;

    /** 动态内容的地理位置（城市） */
    @Excel(name = "动态内容的地理位置", readConverterExp = "城=市")
    private String city;

    /** 发布动态的用户 ID */
    @Excel(name = "发布动态的用户 ID")
    private Long userId;


    /** 发布动态的用户 ID */
    @Excel(name = "发布动态的用户 ID")
    private Object userInfo;

    /** 动态的样式类型 */
    @Excel(name = "动态的样式类型")
    private Long style;

    /** 动态内容的评论数 */
    @Excel(name = "动态内容的评论数")
    private Long commentsCount;

    /** 动态内容的点击量或浏览量 */
    @Excel(name = "动态内容的点击量或浏览量")
    private Long clicksCount;

    /** 动态内容的点赞数 */
    @Excel(name = "动态内容的点赞数")
    private Long likesCount;

    /** 否点赞过该动态（0-未点用赞,1-点赞） */
    @Excel(name = "否点赞过该动态", readConverterExp = "0=-未点用赞,1-点赞")
    private String likeId;

    /** 当前用户是否收藏了该动态（0-未收藏，1-已收藏） */
    @Excel(name = "当前用户是否收藏了该动态", readConverterExp = "0=-未收藏，1-已收藏")
    private String isFavorited;

    /** 当前用户是否分享了该动态（0-未分享，1-已分享） */
    @Excel(name = "当前用户是否分享了该动态", readConverterExp = "0=-未分享，1-已分享")
    private String isShared;

    /** 当前用户是否关注了发布该动态的用户（0-未关注，1-已关注） */
    @Excel(name = "当前用户是否关注了发布该动态的用户", readConverterExp = "0=-未关注，1-已关注")
    private String isFollowed;

    /** 动态内容的来源（0-用户上传、1-官方发布、2-第三方合作等） */
    @Excel(name = "动态内容的来源", readConverterExp = "0=-用户上传、1-官方发布、2-第三方合作等")
    private String source;

    /** 动态内容的推荐分数 */
    @Excel(name = "动态内容的推荐分数")
    private Long recommendScore;

    /** 动态内容的分享次数 */
    @Excel(name = "动态内容的分享次数")
    private Long shareCount;

    /** 动态内容的收藏次数 */
    @Excel(name = "动态内容的收藏次数")
    private Long favoriteCount;

    /** 动态内容的分类 */
    @Excel(name = "动态内容的分类")
    private String category;

    /** 动态内容的缩略图 URL */
    @Excel(name = "动态内容的缩略图 URL")
    private String thumbnail;

    /** 视频动态的封面图  URL */
    @Excel(name = "视频动态的封面图  URL")
    private String videoCover;

    /** 动态内容的宽度（例如视频宽度、图片宽度） */
    @Excel(name = "动态内容的宽度", readConverterExp = "例=如视频宽度、图片宽度")
    private Long width;

    /** 动态内容的高度（例如视频高度、图片高度） */
    @Excel(name = "动态内容的高度", readConverterExp = "例=如视频高度、图片高度")
    private Long height;

    /** 动态内容的时长（例如视频时长） */
    @Excel(name = "动态内容的时长", readConverterExp = "例=如视频时长")
    private Long duration;

    /** 动态内容的纬度 */
    @Excel(name = "动态内容的纬度")
    private String latitude;

    /** 动态内容的经度 */
    @Excel(name = "动态内容的经度")
    private String longitude;

    /** 视频动态的时长（秒） */
    @Excel(name = "视频动态的时长", readConverterExp = "秒=")
    private Long videoDuration;

    /** 音频动态的 URL */
    @Excel(name = "音频动态的 URL")
    private String audioUrl;

    /** 音频动态的时长（秒） */
    @Excel(name = "音频动态的时长", readConverterExp = "秒=")
    private Long audioDuration;

    /** 动态内容关联的商品 ID */
    @Excel(name = "动态内容关联的商品 ID")
    private String productId;

    /** 动态内容关联的活动 ID */
    @Excel(name = "动态内容关联的活动 ID")
    private String activityId;

    /** 动态内容的外部链接 */
    @Excel(name = "动态内容的外部链接")
    private String externalLink;

    /** 动态内容是否公开（0-私密，1-公开） */
    @Excel(name = "动态内容是否公开", readConverterExp = "0=-私密，1-公开")
    private String isPublic;

    /** 动态内容是否置顶（0-未置顶，1-置顶） */
    @Excel(name = "动态内容是否置顶", readConverterExp = "0=-未置顶，1-置顶")
    private String isPinned;

    /** 状态（例如：0-正常，1-审核中，2-已下架） */
    @Excel(name = "状态", readConverterExp = "例=如：0-正常，1-审核中，2-已下架")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 过期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expireTime;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setTitle(String title)
    {
        this.title = title;
    }

    public String getTitle()
    {
        return title;
    }
    public void setContent(String content)
    {
        this.content = content;
    }

    public String getContent()
    {
        return content;
    }
    public void setIcon(String icon)
    {
        this.icon = icon;
    }

    public String getIcon()
    {
        return icon;
    }
    public void setUri(String uri)
    {
        this.uri = uri;
    }

    public String getUri()
    {
        return uri;
    }
    public void setProvince(String province)
    {
        this.province = province;
    }

    public String getProvince()
    {
        return province;
    }
    public void setCity(String city)
    {
        this.city = city;
    }

    public String getCity()
    {
        return city;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setStyle(Long style)
    {
        this.style = style;
    }

    public Long getStyle()
    {
        return style;
    }
    public void setCommentsCount(Long commentsCount)
    {
        this.commentsCount = commentsCount;
    }

    public Long getCommentsCount()
    {
        return commentsCount;
    }
    public void setClicksCount(Long clicksCount)
    {
        this.clicksCount = clicksCount;
    }

    public Long getClicksCount()
    {
        return clicksCount;
    }
    public void setLikesCount(Long likesCount)
    {
        this.likesCount = likesCount;
    }

    public Long getLikesCount()
    {
        return likesCount;
    }
    public void setLikeId(String likeId)
    {
        this.likeId = likeId;
    }

    public String getLikeId()
    {
        return likeId;
    }
    public void setIsFavorited(String isFavorited)
    {
        this.isFavorited = isFavorited;
    }

    public String getIsFavorited()
    {
        return isFavorited;
    }
    public void setIsShared(String isShared)
    {
        this.isShared = isShared;
    }

    public String getIsShared()
    {
        return isShared;
    }
    public void setIsFollowed(String isFollowed)
    {
        this.isFollowed = isFollowed;
    }

    public String getIsFollowed()
    {
        return isFollowed;
    }
    public void setSource(String source)
    {
        this.source = source;
    }

    public String getSource()
    {
        return source;
    }
    public void setRecommendScore(Long recommendScore)
    {
        this.recommendScore = recommendScore;
    }

    public Long getRecommendScore()
    {
        return recommendScore;
    }
    public void setShareCount(Long shareCount)
    {
        this.shareCount = shareCount;
    }

    public Long getShareCount()
    {
        return shareCount;
    }
    public void setFavoriteCount(Long favoriteCount)
    {
        this.favoriteCount = favoriteCount;
    }

    public Long getFavoriteCount()
    {
        return favoriteCount;
    }
    public void setCategory(String category)
    {
        this.category = category;
    }

    public String getCategory()
    {
        return category;
    }
    public void setThumbnail(String thumbnail)
    {
        this.thumbnail = thumbnail;
    }

    public String getThumbnail()
    {
        return thumbnail;
    }
    public void setVideoCover(String videoCover)
    {
        this.videoCover = videoCover;
    }

    public String getVideoCover()
    {
        return videoCover;
    }
    public void setWidth(Long width)
    {
        this.width = width;
    }

    public Long getWidth()
    {
        return width;
    }
    public void setHeight(Long height)
    {
        this.height = height;
    }

    public Long getHeight()
    {
        return height;
    }
    public void setDuration(Long duration)
    {
        this.duration = duration;
    }

    public Long getDuration()
    {
        return duration;
    }
    public void setLatitude(String latitude)
    {
        this.latitude = latitude;
    }

    public String getLatitude()
    {
        return latitude;
    }
    public void setLongitude(String longitude)
    {
        this.longitude = longitude;
    }

    public String getLongitude()
    {
        return longitude;
    }
    public void setVideoDuration(Long videoDuration)
    {
        this.videoDuration = videoDuration;
    }

    public Long getVideoDuration()
    {
        return videoDuration;
    }
    public void setAudioUrl(String audioUrl)
    {
        this.audioUrl = audioUrl;
    }

    public String getAudioUrl()
    {
        return audioUrl;
    }
    public void setAudioDuration(Long audioDuration)
    {
        this.audioDuration = audioDuration;
    }

    public Long getAudioDuration()
    {
        return audioDuration;
    }
    public void setProductId(String productId)
    {
        this.productId = productId;
    }

    public String getProductId()
    {
        return productId;
    }
    public void setActivityId(String activityId)
    {
        this.activityId = activityId;
    }

    public String getActivityId()
    {
        return activityId;
    }
    public void setExternalLink(String externalLink)
    {
        this.externalLink = externalLink;
    }

    public String getExternalLink()
    {
        return externalLink;
    }
    public void setIsPublic(String isPublic)
    {
        this.isPublic = isPublic;
    }

    public String getIsPublic()
    {
        return isPublic;
    }
    public void setIsPinned(String isPinned)
    {
        this.isPinned = isPinned;
    }

    public String getIsPinned()
    {
        return isPinned;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }
    public void setExpireTime(Date expireTime)
    {
        this.expireTime = expireTime;
    }

    public Date getExpireTime()
    {
        return expireTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("title", getTitle())
            .append("content", getContent())
            .append("icon", getIcon())
            .append("uri", getUri())
            .append("province", getProvince())
            .append("city", getCity())
            .append("userId", getUserId())
            .append("style", getStyle())
            .append("commentsCount", getCommentsCount())
            .append("clicksCount", getClicksCount())
            .append("likesCount", getLikesCount())
            .append("likeId", getLikeId())
            .append("isFavorited", getIsFavorited())
            .append("isShared", getIsShared())
            .append("isFollowed", getIsFollowed())
            .append("source", getSource())
            .append("recommendScore", getRecommendScore())
            .append("shareCount", getShareCount())
            .append("favoriteCount", getFavoriteCount())
            .append("category", getCategory())
            .append("thumbnail", getThumbnail())
            .append("videoCover", getVideoCover())
            .append("width", getWidth())
            .append("height", getHeight())
            .append("duration", getDuration())
            .append("latitude", getLatitude())
            .append("longitude", getLongitude())
            .append("videoDuration", getVideoDuration())
            .append("audioUrl", getAudioUrl())
            .append("audioDuration", getAudioDuration())
            .append("productId", getProductId())
            .append("activityId", getActivityId())
            .append("externalLink", getExternalLink())
            .append("isPublic", getIsPublic())
            .append("isPinned", getIsPinned())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("expireTime", getExpireTime())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }

    public Object getUserInfo() {
        return userInfo;
    }

    public void setUserInfo(Object userInfo) {
        this.userInfo = userInfo;
    }
}
